#include "base_bubu.h"

//普通布布的构造函数
Base_bubu::Base_bubu()
{
    hp = 600;//血量
    atk = 100 * 33 / 1000;//攻击
    speed = 80.0 * 33 / 1000 / 6;//移动速度
    setMovie(":/picture/bubu.gif");
}

//有两种状态，行走，攻击，死亡，分别记为0，1，2。
void Base_bubu::advance(int phase)
{
    if (!phase)
        return;
    update();
    if (hp <= 0)
    {//死亡
        if (state < 2)
        {
            state = 2;
            setMovie(":/picture/bubudie.jpg");
        }
        else if (movie->currentFrameNumber() == movie->frameCount() - 1)
            delete this;
        return;
    }
    QList<QGraphicsItem *> items = collidingItems();
    if (!items.isEmpty())
    {//攻击
        Onetwo *onetwo = qgraphicsitem_cast<Onetwo *>(items[0]);
        onetwo->hp -= atk;
        if (state != 1)
        {
            state = 1;
            setMovie(":/picture/bubu.gif");
        }
        return;
    }
    if (state)
    {//行走
        state = 0;
        setMovie(":/picture/bubu.gif");

    }
    setX(x() - speed);
}
